import request from '@/utils/request';
import type { PageResult, ResponseData } from '../typing';
// 参数接口
export interface GetLocalStatisticsParams {
    /* */
    startDay?: Record<string, unknown>;
    /* */
    endDay?: Record<string, unknown>;
    /* */
    userList?: Record<string, unknown>[];
}

/**
 * getLocalStatistics
 * @param {object} params ButlerLocalStatisticsQuery
 * @param {object} params.startDay
 * @param {object} params.endDay
 * @param {array} params.userList
 * @returns
 */
export function getLocalStatistics(params: GetLocalStatisticsParams): Promise<ResponseData> {
    return request.post(`/butler/statistics/statistics`, params);
}
// 参数接口
export interface GetButlerStatisticsPageParams {
    /*当前第几页(默认1) */
    current?: number;
    /*每页条数(默认20) */
    size?: number;
    /* */
    startDay?: Record<string, unknown>;
    /* */
    endDay?: Record<string, unknown>;
    /* */
    projectList?: Record<string, unknown>[];
    /* */
    page?: {
        /* */
        records?: {
            /*项目名称 */
            residentialName?: string;
            /*项目code */
            projectCode?: string;
            /*总户数 */
            totalProperty?: Record<string, unknown>;
            /*总绑定数 */
            totalBind?: Record<string, unknown>;
            /*本周绑定数 */
            totalBindThisWeek?: Record<string, unknown>;
            /*绑定率 */
            bindRate?: number;
            /*聊天总数， 成员有主动发送过消息的单聊总数 */
            chatCnt?: Record<string, unknown>;
            /*发送消息数，成员在单聊中发送的消息总数 */
            messageCnt?: Record<string, unknown>;
            /*已回复聊天占比 */
            replyPercentage?: number;
            /*平均回复时长，单位为分钟 */
            avgReplyTime?: Record<string, unknown>;
            /*删除/拉黑成员的客户数 */
            negativeFeedbackCnt?: Record<string, unknown>;
            /*成员通过多途径，向客户发起的好友申请数量（详细见文档） */
            newApplyCnt?: Record<string, unknown>;
            /*新增客户数，成员新添加的客户数量 */
            newContactCnt?: Record<string, unknown>;
            /* */
            weComStatisticsDetailList?: {
                /*数据日期，为当日0点的时间戳 */
                statTime?: Record<string, unknown>;
                /*聊天总数， 成员有主动发送过消息的单聊总数 */
                chatCnt?: Record<string, unknown>;
                /*发送消息数，成员在单聊中发送的消息总数 */
                messageCnt?: Record<string, unknown>;
                /*已回复聊天占比 */
                replyPercentage?: number;
                /*平均回复时长，单位为分钟 */
                avgReplyTime?: Record<string, unknown>;
                /*删除/拉黑成员的客户数 */
                negativeFeedbackCnt?: Record<string, unknown>;
                /*成员通过多途径，向客户发起的好友申请数量（详细见文档） */
                newApplyCnt?: Record<string, unknown>;
                /*新增客户数，成员新添加的客户数量 */
                newContactCnt?: Record<string, unknown>;
            }[];
        }[];
        /* */
        total?: Record<string, unknown>;
        /* */
        size?: Record<string, unknown>;
        /* */
        current?: Record<string, unknown>;
        /* */
        orders?: {
            /* */
            column?: string;
            /* */
            asc?: boolean;
        }[];
        /* */
        optimizeCountSql?: boolean;
        /* */
        searchCount?: boolean;
        /* */
        optimizeJoinOfCountSql?: boolean;
        /* */
        maxLimit?: Record<string, unknown>;
        /* */
        countId?: string;
        /* */
        pages?: Record<string, unknown>;
    };
}
// 响应接口
export interface GetButlerStatisticsPageRes {
    /* */
    code: number;
    /* */
    data: {
        /* */
        size: number;
        /* */
        total: number;
        /* */
        current: number;
        /* */
        records: {
            /*项目名称 */
            residentialName: string;
            /*项目code */
            projectCode: string;
            /*总户数 */
            totalProperty: number;
            /*总绑定数 */
            totalBind: number;
            /*本周绑定数 */
            totalBindThisWeek: number;
            /*绑定率 */
            bindRate: number;
            /*聊天总数， 成员有主动发送过消息的单聊总数 */
            chatCnt: number;
            /*发送消息数，成员在单聊中发送的消息总数 */
            messageCnt: number;
            /*已回复聊天占比 */
            replyPercentage: Record<string, unknown>;
            /*平均回复时长，单位为分钟 */
            avgReplyTime: number;
            /*删除/拉黑成员的客户数 */
            negativeFeedbackCnt: number;
            /*成员通过多途径，向客户发起的好友申请数量（详细见文档） */
            newApplyCnt: number;
            /*新增客户数，成员新添加的客户数量 */
            newContactCnt: number;
            /* */
            weComStatisticsDetailList: {
                /*数据日期，为当日0点的时间戳 */
                statTime: number;
                /*聊天总数， 成员有主动发送过消息的单聊总数 */
                chatCnt: number;
                /*发送消息数，成员在单聊中发送的消息总数 */
                messageCnt: number;
                /*已回复聊天占比 */
                replyPercentage: Record<string, unknown>;
                /*平均回复时长，单位为分钟 */
                avgReplyTime: number;
                /*删除/拉黑成员的客户数 */
                negativeFeedbackCnt: number;
                /*成员通过多途径，向客户发起的好友申请数量（详细见文档） */
                newApplyCnt: number;
                /*新增客户数，成员新添加的客户数量 */
                newContactCnt: number;
            }[];
        }[];
        /* */
        pages: number;
    };
    /* */
    msg: string;
}
/**
 * 统计报表
 * @param {object} params ButlerStatisticsQuery
 * @param {number} params.current 当前第几页(默认1)
 * @param {number} params.size 每页条数(默认20)
 * @param {object} params.startDay
 * @param {object} params.endDay
 * @param {array} params.projectList
 * @param {object} params.page
 * @returns
 */
export function getButlerStatisticsPage(params: GetButlerStatisticsPageParams): Promise<GetButlerStatisticsPageRes> {
    return request.post(`/butler/statistics/page`, params);
}
